package pe.gob.osinergmin.interfase_siaf.dac.common.dao.impl;

import javax.sql.DataSource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.stereotype.Repository;

import pe.gob.osinergmin.interfase_siaf.dac.common.dao.IntfDet09Dao;
import pe.gob.osinergmin.interfase_siaf.dac.domain.interfase.IntfDet09;

@Repository("intfDet09Dao")
public class IntfDet09DaoImpl implements IntfDet09Dao {
	
    private final Log logger = LogFactory.getLog(getClass());
 	
	
	private NamedParameterJdbcTemplate jdbcParameterTemplateInterfase;	
	//private JdbcTemplate jdbcTemplateInterfase;		
	
	
	@Autowired
	public void SetDataSource(DataSource dataSourceInterfase){
	//	this.jdbcTemplateInterfase = new JdbcTemplate(dataSourceInterfase);
		this.jdbcParameterTemplateInterfase = new NamedParameterJdbcTemplate(dataSourceInterfase);		
	}

	
	
	/**DECLARACION DE SQL**/	
	/*private static final String SQL_INSERT_INTF_DET09 ="INSERT INTO INTF_DET09 (SECUENCIAL,ID_CLASIFI,CLASIFNIV1,CLASIFNIV2,"
			+ " CLASIFNIV3,CLASIFNIV4,CLASIFNIV5,CLASIFNIV6,MONTO,MONTO_MN,DATO_ORI) "
			+ " VALUES (:secuencial, :idClasifi, :clasifniv1, :clasifniv2, :clasifniv3, :clasifniv4, :clasifniv5,"
			+ " :clasifniv6, :monto, :montoMn, :datoOri)";
	
	*/
	//private static final String SQL_SELECT_SECUENCIAL="SELECT secuencial FROM INTF_DET09 WHERE secuencial=:secuencial";
	
	private static final String SQL_SELECT_SECUENCIAL="SELECT COUNT(secuencial) FROM INTF_DET09 WHERE secuencial=:secuencial";
	/**IMPLEMENTACION DE METODOS*/
	
	/*@Override
	public void insertarIntfDet09(IntfDet09 intfDet09) throws Exception{
		logger.info("Ingresando a insertar intfDet09"); 
		SqlParameterSource parameters = new BeanPropertySqlParameterSource(intfDet09);
		int ok = this.jdbcParameterTemplateInterfase.update(SQL_INSERT_INTF_DET09, parameters);
		logger.info("insertar intfDet09 OK :  " + ok); 
	}*/
		
	@Override
	public int verificarSecuencialDet09(IntfDet09 d) throws Exception {
		logger.info("ingresando a verificar el secuencial intf_det09"); 
		SqlParameterSource parameters = new BeanPropertySqlParameterSource(d);	
	    return this.jdbcParameterTemplateInterfase.queryForInt(SQL_SELECT_SECUENCIAL, parameters);	
	}
	     

}
